package lex.dm.utils;

public class Utils {
	/**
	 * ���������������Ƿ����.���������ÿ�����null���null.<br>
	 * ����Ϊ��
	 * 
	 * <pre>
	 * 1������������ö���null������ȣ��������ֻ��һ����null�������
	 * 2�������������ָ��ͬһ�����������
	 * 3�����ʹ��Object.equals(Object)�����Ƿ����
	 * </pre>
	 * 
	 * @param a
	 * @param b
	 * @return
	 */
	public static boolean equals2(Object a, Object b) {
		if (null == a)
			return null == b;
		else if (null == b)
			// ��ʱ�����ƶϳ� a!=null
			return false;
		else if (a == b)
			return true;
		else
			// note: what if a and/or b is array?
			return a.equals(b);
	}

	public static void main(String[] args) {
		Object[][] cases = { { null, null }, { null, "b" }, { "a", null }, { "a", "b" } };
		for (int i = 0; i < cases.length; i++) {
			Object[] a = cases[i];
			System.out.println("equals2( " + a[0] + ", " + a[1] + " ) = " + equals2(a[0], a[1]));
		}
	}

	private Utils() {
	};
}
